﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using Business_Entity;
using Business_Logic;
namespace Caja
{
    public partial class frmRegistrarPago : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {

        }

        protected void btnSalir_Click(object sender, EventArgs e)
        {
            Response.Redirect("Default.aspx");
        }

        protected void btnBuscar_Click(object sender, EventArgs e)
        {
            try
            {
                LimpiarForm();
                BL_Orden objOrdenBL = new BL_Orden();
                BL_Paciente objPacienteBL = new BL_Paciente();
                BL_OrdenDetalle objOrdenDetalleBL = new BL_OrdenDetalle();

                BE_Orden prmOrdenBE = new BE_Orden();
                BE_Orden objOrdenBE = new BE_Orden();
                BE_Paciente prmPacienteBE = new BE_Paciente();
                BE_Paciente objPacienteBE = new BE_Paciente();
                List<BE_OrdenDetalle> objListadoOrdenDetalle = new List<BE_OrdenDetalle>();

                prmOrdenBE.NroOrden = txtBuscar.Text;
                objOrdenBE = objOrdenBL.ObtenerOrden(prmOrdenBE);

                if ((objOrdenBE.IdPaciente != null))
                {
                    prmPacienteBE.IdPaciente = objOrdenBE.IdPaciente;
                    objPacienteBE = objPacienteBL.ObtenerPaciente(prmPacienteBE);

                    //Datos del paciente
                    ViewState["IdPaciente"] = objPacienteBE.IdPaciente;
                    lblCODIGO.Text = objPacienteBE.Codigo;
                    lblNOMBRE.Text = objPacienteBE.Nombre;
                    lblAPELLIDO.Text = objPacienteBE.Apellido;
                    lblSEGURO.Text = objPacienteBE.Seguro;
                    hfIdPaciente.Value = objPacienteBE.IdPaciente;

                    //Datos de la orden
                    lblTOTAL.Text = objOrdenBE.ImporteTotal.ToString();

                    objListadoOrdenDetalle = objOrdenDetalleBL.ObtenerOrdenDetalle(objOrdenBE);
                    ddlFormaPago.Enabled = true;
                    GridView1.DataSource = objListadoOrdenDetalle;
                    GridView1.DataBind();
                }
                else
                {
                    lblMsgError.Text = "No se encontró el Nro de Orden Ingresado";
                }
            }
            catch (Exception ex)
            {
                lblMsgError.Text = ex.Message;
            }

        }
        public void LimpiarForm()
        {
            lblCODIGO.Text = "";
            lblNOMBRE.Text = "";
            lblAPELLIDO.Text = "";
            lblSEGURO.Text = "";
            lblTOTAL.Text = "";
            lblMsgError.Text = "";
        }

        protected void btnRegistrarPago_Click(object sender, EventArgs e)
        {
            try
            {
                BL_Comprobante objComprobanteBL = new BL_Comprobante();
                BE_Comprobante prmComprobaneBE = new BE_Comprobante();
                int iResp = 0;

                //Datos del comprobante de pago
                prmComprobaneBE.Serie = "275";
                prmComprobaneBE.Numero = "1";
                prmComprobaneBE.IdPaciente = hfIdPaciente.Value;
                prmComprobaneBE.Nombre = lblNOMBRE.Text;
                prmComprobaneBE.NroOrden = txtBuscar.Text;
                prmComprobaneBE.IdMedioPago = ddlFormaPago.SelectedValue.ToString();
                prmComprobaneBE.IdModalidadPago = "1";
                prmComprobaneBE.ImporteIgv = Convert.ToDecimal(lblTOTAL.Text) / Convert.ToDecimal(1.19);
                prmComprobaneBE.ImporteTotal = Convert.ToDecimal(lblTOTAL.Text);

                iResp = objComprobanteBL.RegistrarComprobante(prmComprobaneBE);
                if (iResp > 0)
                {
                    lblMsgError.Text = "Pago registrado correctamente.";
                }

            }
            catch (Exception ex)
            {
                lblMsgError.Text = ex.Message;
            }
        }

     
    }
}